#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '汤小洋'

'''
1.算术运算符
'''
print('-' * 50)  # 可以用于字符串
print(5 / 2)  # 求商，有小数
print(5 // 2)  # 整数商，取整
print(5 % 2)  # 求模，取余数
print(2 ** 3)  # 求次方（幂）
# a++  # 不支持自增++ 自减--

'''
2.比较运算符
'''
j = 6
print(2 < j < 9)  # 支持此写法
print('abc' > 'acd')  # 可以用于字符串比较，比较的是字符串的Unicode编码

'''
3.赋值运算符
'''
a = 10
a += 5  # 等同于a = a + 5
b, c, d = 3, 8, 4  # 同时为多个变量赋值，称为同步赋值
print(a, b, c, d)
m = n = 6  # 连续赋值
print(m, n)

'''
4.逻辑运算符
'''
print(True and False) # and 表示必须同时成立才行
print(5 >= 2 and 4*2 < 6) 
print(5 >= 2 or 4*2 < 6) # or 表示只要有一个成立就行
print(not 5 >= 2) # not 表示取反

# 其他数据转换为bool时
print(not 5) # 非0表示True，0表示False
print(not 'hello') #　非空字符串表示True，空字符串表示False

# 短路运算，也称为逻辑中断
a = True
b = False
c = 'hello'
d = 0
# 对于or而言，如果左边为真，则直接返回左边；否则直接返回右边
print(a or b)
print(c or b)
print(b or a)
print(b or c)
# 对于and而言，如果左边为真，则直接返回右边；否则直接返回左边
print(a and b)
print(a and c)
print(b and a)
print(d and a)

'''
5.条件运算符
'''
print('yes' if 5 < 2 else 'no')

# 例：请输入考试成绩，判断是否及格并输出
score = input('请输入您的成绩：')
result = '及格' if int(score) >= 60 else '不及格'
print(result)

'''
6.成员运算符
'''
nums = [12, 4, 56, 23, 8]  # 定义一个列表
n = int(input('请输入一个数字：'))
print(n in nums)  # 判断n是否存在于nums列表中，存在返回True，否则返回False
print(n not in nums) 

'''
7.身份运算符
'''
b = [1, 2, 3]
c = [1, 2, 3]
d = c
print(b is c)  # 判断两个变量是否引用同一个对象
print(c is d)

'''
is与==区别
is 判断两个变量是否引用同一个对象
== 判断两个变量的值是否相等
'''
print(b == c)

# 判断是否为None时使用is
a = None
print(a is None)
print(a is not None)
